package com.ycsj.common.http;

import java.util.Map;

/**
 * 网络请求的代理类,使用了代理模式
 * Created by Administrator on 2018/12/6 0006.
 */

public class HttpProxy implements IHttpProcessor {
    /**
     * 单例模式处理,采用的是静态内部类实现单例
     */
    private HttpProxy() {
    }

    private static class LazyHolder {
        private static final HttpProxy INSTANCE = new HttpProxy();
    }

    public static final HttpProxy getInstance() {
        return LazyHolder.INSTANCE;
    }


    /**
     * 申明代理接口
     */
    private static IHttpProcessor iHttpProcessor;

    /**
     * 初始化方法,需要在Application中进行初始化,将真正执行任务的角色和代理者进行绑定
     * 参数为实现了IHttpProcessor接口的具体网络请求框架
     */
    public static void init(IHttpProcessor httpProcessor) {
        iHttpProcessor = httpProcessor;
    }

    /**
     * 执行Post请求的方法
     *
     * @param url      请求的Url
     * @param params   请求的参数
     * @param callBack 请求的回调接口
     */
    @Override
    public void post(String url, Map<String, String> params, ICallBack callBack) {
        iHttpProcessor.post(url, params, callBack);
    }

    /**
     * 执行Get请求的方法
     *
     * @param url      请求的Url
     * @param params   请求的参数
     * @param callBack 请求的回调接口
     */
    @Override
    public void get(String url, Map<String, String> params, ICallBack callBack) {
        iHttpProcessor.get(url, params, callBack);
    }

}
